package com.itheima.service;

import com.alibaba.dubbo.config.annotation.Service;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.itheima.dao.PermissionDao;
import com.itheima.entity.PageResult;
import com.itheima.entity.QueryPageBean;
import com.itheima.pojo.CheckItem;
import com.itheima.pojo.Permission;
import com.itheima.pojo.Role;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

@Service
public class PermissionServiceImpl implements PermissionService {
	@Autowired
	private PermissionDao permissionDao;

	@Override
	//分页查询权限
	public PageResult findPage(QueryPageBean queryPageBean) {
		//1. 开始分页
		PageHelper.startPage(queryPageBean.getCurrentPage(), queryPageBean.getPageSize());
		//2. 根据条件查询（返回值：Page）
		Page<Permission> page = permissionDao.findByCondition(queryPageBean.getQueryString());
		//创建返回值
		PageResult pageResult = new PageResult(page.getTotal(), page);
		return pageResult;
	}

	@Override
	public void addPermission(Permission permission) {
		permissionDao.insPermission(permission);
	}

	@Override
	public void deleteById(Integer id) {
		//检查是否有角色使用了此权限
		int count = permissionDao.selCountWithRole(id);
		if (count > 0) {
			//如果有角色使用了此权限
			throw new RuntimeException("该权限正在被使用，不可删除");
		}
		//如果没有角色使用此权限，直接删除
		permissionDao.delById(id);
	}

	@Override
	public Permission findById(Integer id) {
		return permissionDao.selById(id);
	}

	@Override
	public void edit(Permission permission) {
		permissionDao.updPermission(permission);
	}

	@Override
	public List<Permission> findAll() {
		return permissionDao.selAll();
	}
}
